package w83b.w83bOperacionesPaso.w83bActas;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import w83b.w83bBeans.W83bActasBean;
import w83b.w83bBeans.W83bDocBean;
import w83b.w83bBeans.W83bListaDelegadosBean;
import w83b.w83bBeans.W83bListaDiferenciasBean;
import w83b.w83bBeans.W83bListaEscrutiniosBean;
import w83b.w83bBeans.W83bUsuarioXLNetsBean;
import w83b.w83bUtilidadesComunes.W83bClsConstantes;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

// TODO: Auto-generated Javadoc
/**
 * The Class W83bTablaAgrupacionesOP.java.
 *
 * @author Deusto Sistemas
 */
public class W83bTablaActasNuevaAction extends Q70ActionPasoOP{

	
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		HashMap listaEscrc1=(HashMap)contexto.get("w83bListaEscrutiniosC1");
		HashMap listaEscrc2=(HashMap)contexto.get("w83bListaEscrutiniosC2");
		HashMap listaEscrc1Borrados=(HashMap)contexto.get("w83bListaEscrutiniosC1Borrados");
		HashMap listaEscrc2Borrados=(HashMap)contexto.get("w83bListaEscrutiniosC2Borrados");
		HashMap listaDifc1=(HashMap)contexto.get("w83bListaDiferenciasC1");
		HashMap listaDifc2=(HashMap)contexto.get("w83bListaDiferenciasC2");
		HashMap listaDifc1Borrados=(HashMap)contexto.get("w83bListaDiferenciasC1Borrados");
		HashMap listaDifc2Borrados=(HashMap)contexto.get("w83bListaDiferenciasC2Borrados");
		HashMap listaDelegados=(HashMap)contexto.get("w83bListaDelegados");
		W83bActasBean acta=(W83bActasBean)contexto.get("w83bNuevaActaBean");
		if(StringUtils.isNotEmpty(request.getParameter("w83bNuevaActaBean.inspeccionada"))&&(W83bClsConstantes.INSPECCIONADA).equals(request.getParameter("w83bNuevaActaBean.inspeccionada"))){
			acta.setInspeccionada(W83bClsConstantes.INSPECCIONADA);
		}else{
			acta.setInspeccionada(W83bClsConstantes.NO_INSPECCIONADA);				
		}
		//escrutinio c1
		Collection c = listaEscrc1.values();
		Iterator itr = c.iterator();
		while(itr.hasNext()){
			W83bListaEscrutiniosBean escrutinioBean=(W83bListaEscrutiniosBean)itr.next();
			escrutinioBean.setActa(acta.getNumActa());
			escrutinioBean.setAnyoActa(acta.getNumActaAno());
			escrutinioBean.setTerritorioActa(acta.getNumActaTerritorio());
			escrutinioBean.setVersionActa(acta.getVersion());
		}
		contexto.set("w83bListaEscrutiniosC1",listaEscrc1);
		acta.getDatosEscrutinio().setListaEscrutiniosC1(listaEscrc1);
		
		c = listaEscrc1Borrados.values();
		itr = c.iterator();
		while(itr.hasNext()){
			W83bListaEscrutiniosBean escrutinioBean=(W83bListaEscrutiniosBean)itr.next();
			escrutinioBean.setActa(acta.getNumActa());
			escrutinioBean.setAnyoActa(acta.getNumActaAno());
			escrutinioBean.setTerritorioActa(acta.getNumActaTerritorio());
			escrutinioBean.setVersionActa(acta.getVersion());
		}
		contexto.set("w83bListaEscrutiniosC1Borrados",listaEscrc1Borrados);
		acta.getDatosEscrutinio().setListaEscrutiniosC1Borrados(listaEscrc1Borrados);
		//escrutinio c2
		//contexto.set("w83bNuevaActaBean", acta);
		c = listaEscrc2.values();
		itr = c.iterator();
		while(itr.hasNext()){
			W83bListaEscrutiniosBean escrutinioBean=(W83bListaEscrutiniosBean)itr.next();
			escrutinioBean.setActa(acta.getNumActa());
			escrutinioBean.setAnyoActa(acta.getNumActaAno());
			escrutinioBean.setTerritorioActa(acta.getNumActaTerritorio());
			escrutinioBean.setVersionActa(acta.getVersion());
		}
		contexto.set("w83bListaEscrutiniosC2",listaEscrc2);
		acta.getDatosEscrutinio().setListaEscrutiniosC2(listaEscrc2);
		
		c = listaEscrc2Borrados.values();
		itr = c.iterator();
		while(itr.hasNext()){
			W83bListaEscrutiniosBean escrutinioBean=(W83bListaEscrutiniosBean)itr.next();
			escrutinioBean.setActa(acta.getNumActa());
			escrutinioBean.setAnyoActa(acta.getNumActaAno());
			escrutinioBean.setTerritorioActa(acta.getNumActaTerritorio());
			escrutinioBean.setVersionActa(acta.getVersion());
		}
		contexto.set("w83bListaEscrutiniosC2Borrados",listaEscrc2Borrados);
		acta.getDatosEscrutinio().setListaEscrutiniosC2Borrados(listaEscrc2Borrados);
		//diferencia c1
		//contexto.set("w83bNuevaActaBean", acta);
		c = listaDifc1.values();
		itr = c.iterator();
		while(itr.hasNext()){
			W83bListaDiferenciasBean diferenciaBean=(W83bListaDiferenciasBean)itr.next();
			diferenciaBean.setActa(acta.getNumActa());
			diferenciaBean.setAnyoActa(acta.getNumActaAno());
			diferenciaBean.setTerritorioActa(acta.getNumActaTerritorio());
			diferenciaBean.setVersionActa(acta.getVersion());
		}
		contexto.set("w83bListaDiferenciasC1",listaDifc1);
		acta.getDatosDiferencia().setListaDiferenciasC1(listaDifc1);
		
		c = listaDifc1Borrados.values();
		itr = c.iterator();
		while(itr.hasNext()){
			W83bListaDiferenciasBean diferenciaBean=(W83bListaDiferenciasBean)itr.next();
			diferenciaBean.setActa(acta.getNumActa());
			diferenciaBean.setAnyoActa(acta.getNumActaAno());
			diferenciaBean.setTerritorioActa(acta.getNumActaTerritorio());
			diferenciaBean.setVersionActa(acta.getVersion());
		}
		contexto.set("w83bListaDiferenciasC1Borrados",listaDifc1Borrados);
		acta.getDatosDiferencia().setListaDiferenciasC1Borrados(listaDifc1Borrados);
		//diferencia c2
		//contexto.set("w83bNuevaActaBean", acta);
		c = listaDifc2.values();
		itr = c.iterator();
		while(itr.hasNext()){
			W83bListaDiferenciasBean diferenciaBean=(W83bListaDiferenciasBean)itr.next();
			diferenciaBean.setActa(acta.getNumActa());
			diferenciaBean.setAnyoActa(acta.getNumActaAno());
			diferenciaBean.setTerritorioActa(acta.getNumActaTerritorio());
			diferenciaBean.setVersionActa(acta.getVersion());
		}
		contexto.set("w83bListaDiferenciasC2",listaDifc2);
		acta.getDatosDiferencia().setListaDiferenciasC2(listaDifc2);
		c = listaDifc2Borrados.values();
		itr = c.iterator();
		while(itr.hasNext()){
			W83bListaDiferenciasBean diferenciaBean=(W83bListaDiferenciasBean)itr.next();
			diferenciaBean.setActa(acta.getNumActa());
			diferenciaBean.setAnyoActa(acta.getNumActaAno());
			diferenciaBean.setTerritorioActa(acta.getNumActaTerritorio());
			diferenciaBean.setVersionActa(acta.getVersion());
		}
		contexto.set("w83bListaDiferenciasC2Borrados",listaDifc2Borrados);
		acta.getDatosDiferencia().setListaDiferenciasC2Borrados(listaDifc2Borrados);
		//delegado
		//contexto.set("w83bNuevaActaBean", acta);
		c = listaDelegados.values();
		itr = c.iterator();
		while(itr.hasNext()){
			W83bListaDelegadosBean delegadoBean=(W83bListaDelegadosBean)itr.next();
			delegadoBean.setActa(acta.getNumActa());
			delegadoBean.setAnyoActa(acta.getNumActaAno());
			delegadoBean.setTerritorioActa(acta.getNumActaTerritorio());
			delegadoBean.setVersionActa(acta.getVersion());
			delegadoBean.setUsuarioBean((W83bUsuarioXLNetsBean)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_USUARIO));
		
		}
		contexto.set("w83bListaDelegados",listaDelegados);
		acta.setListaDelegados(listaDelegados);
		if (contexto.get("w83bMapaFileActas")!=null)
		{
			HashMap mapaFiles =(HashMap)contexto.get("w83bMapaFileActas");
			Iterator iter = mapaFiles.keySet().iterator();
			W83bDocBean docBean=null;
			while (iter.hasNext())
			{
				HashMap datosFile=(HashMap)mapaFiles.get(iter.next());
				docBean= new W83bDocBean();//NOPMD
				docBean.setNombre((String)datosFile.get("nombreDocumento"));
				docBean.setTipoDocumento((String)datosFile.get("tipodocumento"));
				docBean.setFechaRegistro((String)datosFile.get("fecharegistro"));
				docBean.setUsuario((String)datosFile.get("usuario"));
				docBean.setNumeroRegistro((String)datosFile.get("numregistro"));
				docBean.setFileData((InputStream)datosFile.get("documentoStream"));
				docBean.setTamanyo(((Long)datosFile.get("tamanyo")).intValue());
				docBean.setFlag((String)datosFile.get("flag"));
				acta.getListaDocs().add(docBean);

			}
		}
		if (contexto.get("w83bListaBorradoFileActas")!=null)
		{
			ArrayList listaBorrados =(ArrayList)contexto.get("w83bListaBorradoFileActas");
			acta.setListaDocsBorrados(listaBorrados);
		}
		if (contexto.get("w83bListaBorradoFileActasCompleto")!=null)
		{
			ArrayList listaBorrados =(ArrayList)contexto.get("w83bListaBorradoFileActasCompleto");
			acta.setListaDocsBorradosCompleto(listaBorrados);
		}
		contexto.set("w83bNuevaActaBean", acta);
	}

	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

		return mapping.findForward("ok");
	}

}
